package com.zyf.swordRefersOffer;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

class _05_EradoSieving {
	public static void main(String[] args) {
		ArrayList<String> li = new ArrayList<String>();
		li = (ArrayList<String>) fizzBuzz(15);
		System.out.println(li);
		System.out.println(eradoSieving(199999999));
	}

	public static List<String> fizzBuzz(int n) {
		ArrayList<String> li = new ArrayList<String>();
		for (int i = 1; i <= n; i++) {
			if (i % 3 == 0 && i % 5 == 0) {
				li.add("FizzBuzz");
			} else if (i % 5 == 0) {
				li.add("Buzz");
			} else if (i % 3 == 0) {
				li.add("Fizz");
			} else {
				li.add(i + "");
			}
		}
		return li;

	}

	public static int eradoSieving(int n) {
		if (n < 3)
			return 0;
		int count = 0;
		boolean[] arr = new boolean[n];
		for (int i = 2; i < n; i++) {
			if (arr[i] == false) {
				count++;
				// 第一个数为2，他是质数，从他开始将他的倍数置为非质数（true）
				for (int j = 2; i * j < n; j++) {
					arr[i * j] = true;
				}
			}
		}
		return count;
	}
}